package com.douhulu.bytedance.common.service;

import com.douhulu.bytedance.common.bean.ToJson;
import com.douhulu.bytedance.common.error.ByteErrorException;
import com.google.gson.JsonObject;

/**
 * <h2> 奕泽云 -  </h2>
 *
 * @Author: 奕泽云 - 曾庆雷
 * @Email: 75881401@qq.com
 * @Since: 2022-05-01 14:34
 * CopyRight：山西威斯汀文化传播有限公司
 */
public interface ByteService {

    /**
     * 当本Service没有实现某个API的时候，可以用这个，针对所有 抖音API 中的 GET 请求.
     * @param url 请求接口地址
     * @param queryParam 请求参数
     * @return 接口响应字符串
     * @throws ByteErrorException 接口访问异常信息
     */
    String get(String url, String queryParam) throws ByteErrorException;

    /**
     * 当本Service没有实现某个API的时候，可以用这个，针对所有 抖音API 中的POST请求.
     * @param url 请求接口地址
     * @param postData 请求参数json值
     * @return 接口响应字符串
     * @throws ByteErrorException 接口访问异常信息
     */
    String post(String url, String postData) throws ByteErrorException;

    /**
     * 当本Service没有实现某个API的时候，可以用这个，针对所有 抖音API 中的POST请求.
     * @param url 请求接口地址
     * @param obj 请求对象
     * @return 接口响应字符串
     * @throws ByteErrorException 接口访问异常信息
     */
    String post(String url, Object obj) throws ByteErrorException;

    /**
     * 当本Service没有实现某个API的时候，可以用这个，针对所有 抖音API 中的POST请求.
     * @param url 请求接口地址
     * @param jsonObject 请求对象
     * @return 接口响应字符串
     * @throws ByteErrorException 接口访问异常信息
     */
    String post(String url, JsonObject jsonObject) throws ByteErrorException;

    /**
     * 当本Service没有实现某个API的时候，可以用这个，针对所有 抖音API 中的POST请求.
     * @param url 请求接口地址
     * @param obj 请求对象，实现了ToJson接口
     * @return 接口响应字符串
     * @throws ByteErrorException 接口访问异常信息
     */
    String post(String url, ToJson obj) throws ByteErrorException;
}
